module.exports = {
    // 增
    // insert(colName, data, success, error){
    //     colName.insertMany(data, (err)=>{
    //         if(err){
    //             error(err);
    //         }else{
    //             success("insert ok");
    //         }
    //     })
    // },
    insert({colName, data}){
        return new Promise((resolve,reject)=>{
            colName.insertMany(data, (err)=>{
                if(err){
                    reject(err);
                }else{
                    resolve("insert ok");
                }
            })
        })
    },
    // 删
    delete({colName, where={}, num=1}){
        // num为1表示，删除单条；非1表示，删除多条
        const type = num===1 ? "deleteOne" : "deleteMany";
        return new Promise((resolve,reject)=>{
            colName[type](where, (err)=>{
                if(err){
                    reject(err);
                }else{
                    resolve("delete ok");
                }
            })
        })
    },
    // 改
    update({colName, where, data, num=1}){
        const type = num===1 ? "updateOne" : "updateMany";
        return new Promise((resolve,reject)=>{
            colName[type](where, data, (err)=>{
                if(err){
                    reject(err);
                }else{
                    resolve("update ok");
                }
            })
        })
    },
    // 根据指定条件查
    get({colName, where={}}){
        return new Promise((resolve,reject)=>{
            colName.find(where, {_id:0,__v:0}, (err,data)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(data);
                }
            })
        })
    },
    // 查分页
    getPage({colName, where={}, index=0, num=10}){
        return new Promise((resolve,reject)=>{
            colName.find(where, {_id:0,__v:0}).limit(num).skip(index*num).exec((err,data)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(data);
                }
            })
        })
    },
    // 排序查
    getSort({colName, where={}, sort={}}){
        return new Promise((resolve,reject)=>{
            colName.find(where, {_id:0,__v:0}).sort(sort).exec((err,data)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(data);
                }
            })
        })
    },
    // 查分类
    getMold({colName, keyWord}){
        return new Promise((resolve,reject)=>{
            colName.distinct(keyWord).exec((err,data)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(data);
                }
            })
        })
    },
    // 查数量
    getLen({colName}){
        return new Promise((resolve,reject)=>{
            colName.countDocuments().exec((err,data)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(data);
                }
            })
        })
    }
}